/**
 * 
 */
package com.sokal.easycare.modules.sys.dao;

import java.util.List;

import com.sokal.easycare.common.persistence.CrudDao;
import com.sokal.easycare.common.persistence.annotation.MyBatisDao;
import com.sokal.easycare.modules.sys.entity.MainUser;

/**
 * 用户DAO接口
 * @author easycare
 * @version 2017-05-16
 */
@MyBatisDao
public interface UserDao extends CrudDao<MainUser> {
	
	/**
	 * 根据新浪uid查找用户
	 * @param uid
	 * @return
	 */
	public String findUserIdBySinaUid(String uid);
	
	/**
	 * 根据微信uid查找用户
	 * @param uid
	 * @return
	 */
	public String findUserIdByWxUid(String uid);
	
	/**
	 * 根据qquid查找用户
	 * @param uid
	 * @return
	 */
	public String findUserIdByQQUid(String uid);
	/**
	 * 根据登录名称查询用户
	 * @param loginName
	 * @return
	 */
	public MainUser getByLoginName(MainUser mainUser);

	/**
	 * 通过OfficeId获取用户列表，仅返回用户id和name（树查询用户时用）
	 * @param mainUser
	 * @return
	 */
	public List<MainUser> findUserByOfficeId(MainUser mainUser);
	
	
	/**
	 * 通过岗位ID查询用户列表
	 * @param mainUser
	 * @return
	 */
	public List<MainUser> findUserByDutyId(MainUser mainUser);
	
	/**
	 * 查询全部用户数目
	 * @return
	 */
	public long findAllCount(MainUser mainUser);
	
	/**
	 * 更新用户密码
	 * @param mainUser
	 * @return
	 */
	public int updatePasswordById(MainUser mainUser);
	
	/**
	 * 更新登录信息，如：登录IP、登录时间
	 * @param mainUser
	 * @return
	 */
	public int updateLoginInfo(MainUser mainUser);
	
	
	
	/**
	 * 更新头像
	 * @param mainUser
	 * @return
	 */
	public int updateImg(MainUser mainUser);

	/**
	 * 删除用户角色关联数据
	 * @param mainUser
	 * @return
	 */
	public int deleteUserRole(MainUser mainUser);
	
	/**
	 * 插入用户角色关联数据
	 * @param mainUser
	 * @return
	 */
	public int insertUserRole(MainUser mainUser);
	
	/**
	 * 更新用户信息
	 * @param mainUser
	 * @return
	 */
	public int updateUserInfo(MainUser mainUser);
	
	/**
	 * 更新用户状态
	 * @param mainUser
	 * @return
	 */
	public int updateStatus(MainUser mainUser);
	

	/**
	 * 更新用户类型
	 * @param mainUser
	 * @return
	 */
	public int updateUserType(MainUser mainUser);
}
